package com.zeyun.EasyOnlineShareCloud.dto.resp.admin;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 仪表盘数据响应DTO
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DashboardRespDTO {

    /**
     * 用户总数
     */
    private Long userCount;

    /**
     * 文件总数
     */
    private Long fileCount;

    /**
     * 今日上传数量
     */
    private Long todayUploads;

    /**
     * 今日下载数量
     */
    private Long todayDownloads;

    /**
     * 趋势数据（最近7天）
     */
    private TrendDataRespDTO trendData;

    /**
     * 存储空间使用情况
     */
    private List<StorageDataRespDTO> storageData;

    /**
     * 最近活动
     */
    private List<ActivityRespDTO> recentActivities;

    /**
     * 趋势数据响应DTO
     */
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class TrendDataRespDTO {
        /**
         * 日期列表
         */
        private List<String> dates;

        /**
         * 上传数量列表
         */
        private List<Long> uploads;

        /**
         * 下载数量列表
         */
        private List<Long> downloads;
    }

    /**
     * 存储数据响应DTO
     */
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class StorageDataRespDTO {
        /**
         * 文件类型名称
         */
        private String name;

        /**
         * 存储大小（MB）
         */
        private Double value;
    }

    /**
     * 活动数据响应DTO
     */
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class ActivityRespDTO {
        /**
         * 时间
         */
        private String time;

        /**
         * 用户名
         */
        private String user;

        /**
         * IP
         */
        private String ip;

        /**
         * 操作
         */
        private String action;

        /**
         * 详情
         */
        private String details;
    }
}